package com.sanchunhui.psc.ui.activity

import android.app.ProgressDialog
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.View
import android.widget.FrameLayout
import com.sanchunhui.psc.R
import com.sanchunhui.psc.common.AppManager
import com.sanchunhui.psc.utils.StatusBarUtil.StatusBarUtil

import com.trello.rxlifecycle.components.support.RxAppCompatActivity
import org.jetbrains.anko.find

/*
    Activity基类，业务无关
 */
open class BaseActivity:RxAppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStatusBar() // 统一更改状态栏样式

        AppManager.instance.addActivity(this)
    }

    override fun onDestroy() {
        super.onDestroy()
        AppManager.instance.finishActivity(this)
    }

    //获取Window中视图content
    val contentView:View
        get() {
            val content = find<FrameLayout>(android.R.id.content)
            return content.getChildAt(0)
        }


    //  Android透明状态栏与状态栏文字颜色更改
    private fun setStatusBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (isUseFullScreenMode()) {
                StatusBarUtil.transparencyBar(this)
            } else {
                StatusBarUtil.setStatusBarColor(this, getStatusBarColor())
            }

            if (isUseBlackFontWithStatusBar()) {
                StatusBarUtil.setLightStatusBar(this, true, isUseFullScreenMode())
            }
        }
    }

    /**
     * 是否设置成透明状态栏，即就是全屏模式
     */
    protected fun isUseFullScreenMode(): Boolean {
        return false
    }

    /**
     * 更改状态栏颜色，只有非全屏模式下有效
     */
    protected fun getStatusBarColor(): Int {
        return R.color.nav_bar
    }

    /**
     * 是否改变状态栏文字颜色为黑色，默认为黑色
     */
    protected fun isUseBlackFontWithStatusBar(): Boolean {
        return true
    }

    fun jumpActivity(clazz: Class<*>) {
        startActivity(Intent(this, clazz))
    }


}
